//自定义权限指令
import store from '@/store/index'
// 导出一个对象
// export default {
//     // 指令钩子
//     inserted(el, binding) {
//         //el 指令作用到哪个元素上
//         //获取使用指令时传递的值
//         const { value } = binding
//         //获取用户当前所拥有的按钮权限
//         const buttonList = store.getters && store.getters.buttonList
//         if (value) {
//             // 用some，不用foreach 因为如果下面为true，则进行终止循环
//             const hasPermission = buttonList.some(button => {
//                 return button === value
//             })
//             // 如果没有权限，则将元素移除
//             if (!hasPermission) {
//                 el.parentNode && el.parentNode.removeChild(el)
//             }
//         }else{
//             throw new Error("需要权限标识！比如v-permission='article:delete'")
//         }
 
 
//     }
// }

export default {
    // 当被绑定的元素插入到 DOM 中时……
    inserted(el, binding, node) {
      const {
        value
      } = binding
      
      // const roles = node.child.$route.meta.roles
      // 获取到当前用户的权限结构
    //   const roles =  JSON.parse(sessionStorage.getItem('authorities'));
        const buttonList = store.getters && store.getters.buttonList

      console.log(roles)
      // console.log(roles)
      // console.log(node.child.$route)
      // if (roles.indexOf(value) >= 0) {
      //   return value
      // } else {
      //   el.parentNode && el.parentNode.removeChild(el) 
      // } //使用方式： v-permission="'add'"
  
      if (value && value instanceof Array && value.length > 0) {
        const permissionRoles = value
        const hasPermission = buttonList.some(role => {
          return permissionRoles.includes(role)
        })
  
        if (!hasPermission) {
          el.parentNode && el.parentNode.removeChild(el)
        }
      } else {
        throw new Error(`使用方式： v-permission="['admin','editor']"`)
      }
    }
  }
 